home *** CD-ROM | disk | FTP | other *** search
-
- ; Thunderbyte Residency Test, by Rhincewind [Vlad]
- ;
- ; As you may or may not know, the Thunderbyte resident av utilities hook
- ; themselves to the device driver chain using the following device names:
- ; TBDRVXXX, TBFILXXX, TBDSKXXX, TBMEMXXX, TBCHKXXX and TBLOGXXX.
- ; Now, by doing trial handle opens you can detect if those devices do or
- ; do not exist et voila, you have a method for testing residency. TBAV
- ; itself scans the actual device driver chain for the TB???XXX devices
- ; which is unlike this method, pretty much impossible to confuse, but also
- ; undocumented and thus it's not guaranteed to work under future versions
- ; of DOS! Yes, Frans Veldman calls vile and unsafe functions in his battle
- ; against replicating codefragments.
- ;
- ; Added note: Just recently I was looking at the EMM virus written by
- ; the author of the OneHalf family and found that it traces the device
- ; chain to detect thunderbyte residency. This means that this kind of
- ; detection isn't exactly new. Oh well, what the heck.
-
- .model tiny
-
- .code
-
- org 100h
-
- start:
- mov ah, 09
- mov dx, offset startmsg
- int 21h
- mov cx,6
- mov dx, offset tbdrvxxx
- detect_loop:
- mov ah,09
- int 21h
- mov ax, 3d00h
- add dx,9
- int 21h
- push dx
- mov dx, offset not_resident
- jc dont_add
- add dx, (resident-not_resident)
- mov bh,3eh
- xchg ax,bx
- int 21h
- dont_add:
- mov ah, 09
- int 21h
- pop dx
- add dx,9
- loop detect_loop
- int 20h
- startmsg db 'Thunderbyte Residency Test by Rhincewind [Vlad]'
- db 0dh,0ah,0dh,0ah,'$'
- tbdrvxxx db 'TbDriver$'
- db 'TBDRVXXX',0
- tbfilxxx db 'TbFile$',0,0
- db 'TBFILXXX',0
- tbdskxxx db 'TbDisk$',0,0
- db 'TBDSKXXX',0
- tbmemxxx db 'TbMem$',0,0,0
- db 'TBMEMXXX',0
- tbchkxxx db 'TbCheck$',0
- db 'TBCHKXXX',0
- tblogxxx db 'TbLog$',0,0,0
- db 'TBLOGXXX',0
- not_resident db ' - Not Resident',0dh,0ah,'$'
- resident db ' - Resident',0dh,0ah,'$'
-
- end start
-
-
-